/*******************************************************************************
 * VARIAVEIS DE NAVEGA??O
 ******************************************************************************/
var INSERIR 			= 1;
var ATUALIZAR 			= 2;
var EXCLUIR 			= 3;
var CONSULTAR 			= 4;
var NAVEGACAO_PAGINACAO = 5;
var SALVAR 				= 6;
var CANCELAR 			= 7;
var SELECIONAR          = 8;
var VISUALIZAR          = 9;

/*******************************************************************************
 * Autor: Maximiano Vieira Coutinho Abreu Gomes
 * Data de Cria??o: 22/05/2007
 *
 * Fun??o : Utilizada para selecionar uma linha de uma tabela na medida em que o mouse passa sobre ela.
 * Usar essa fun??o apenas no caso da tabela tiver sido criada via DisplayTag.
 * idTabela: Valor do atributo id da tabela. 
 * Exemplo : <body onload="selecionarLinhasDisplayTag('row')">
 * Obs : Usar essa fun??o apenas na tag body e com o evento onLoad. 
 ******************************************************************************/

function selecionarLinhasDisplayTag(idTabela) {
    var previousClass = new Array();
    var table = document.getElementById(idTabela);
    if(table!=null){
	    var rows = table.getElementsByTagName("tr");
	    for (i = 1; i < rows.length; i++) {
	        rows[i].onmouseover = function () {
	            var cells = this.getElementsByTagName("td");
				for (var i = 0; i < cells.length; i++){
					previousClass[i] = cells[i].className;
					cells[i].className = (cells[i].className)+"Sel";
				}
	        };
	        rows[i].onmouseout = function () {
	            var cells = this.getElementsByTagName("td");
				for (var i = 0; i < cells.length; i++){
					cells[i].className = previousClass[i];
				}
	        };
	    }
    }
}



/*******************************************************************************
 * Autor: Klinger Menezes de Holanda Rocha
 * Data de Cria??o: 21/01/2004
 *
 * Fun??o : utilizada para verificar se existe algum campo radio selecionado
 *
 * Parametro 1: Caminho e p?gina que ser? chamada
 * Parametro 2: Nome da janela
 * Exemplo : onClick="javascript:AbrirAjuda('../../ajuda/ajuda_cons.html', 'dlgAjudaCons');"
 ******************************************************************************/
function AbrirAjuda(nomePagina, nomeJanela) {
	open(nomePagina +'?hePopup=True', nomeJanela,'width=520,height=550,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no');
}
/***************************************************************************/

/******************************************************************************
 * Autor : Rui Sampaio (rui.sampaio@sefaz.gov.br)
 * ?ltima modifica??o :	(desconhecido)
 *
 * Fun??o utilizada para apresentar uma caixa de mensagem com bot?es para inter_
 * ra??o com o usu?rio.
 *
 * Parametro :   sTexto: Mensagem que devem ser apresentada ao usu?rio.
 *              sTitulo: Titulo da caixa de mensagem.
 *                iTipo: Tipo da mensagem que esta sendo apresentada Erro,
 *                       Questionamento, informa??o e etc.
 *               sBotao: Bot?es que devem ser apresentados (OK, SIM , N?O e ect.)
 *             iLargura: Largura da caixa de mensagem.
 *              iAltura: Altura da  caixa de mensagem.
 * retorno : Objeto window.
 *
 * Exemplo : if (Dialogo('Deseja excluir o item selecionado ?', 'SIGLA - Nome do Sistema', 3, 'Sim;N?o', 8, 4) == 'N?o'){
 ******************************************************************************/
function Dialogo(sTexto, sTitulo, iTipo, sBotao, iLargura, iAltura)
{
        if (iLargura == null) iLargura = 8;
        if (iAltura == null) iAltura = 4;
        iAltura = 4;
        var vValores = sBotao.split(';');
        var vResult = window.showModalDialog('../../nucleo/includes/dialog.jsp?Texto=' + sTexto + '&Titulo=' + sTitulo + '&Tipo=' + iTipo + '&Botao=' + sBotao, vValores, 'dialogWidth:' + iLargura + 'cm; dialogHeight:' + iAltura + 'cm; scroll:no; status:no; help:no;');

        if (sBotao.indexOf(vResult) == -1) {
                if (sBotao.indexOf('Cancelar') != -1) {
                        vResult = 'Cancelar';}
                else {
                        if (sBotao.indexOf('N?o') != -1) {
                                vResult = 'N?o';}
                        else {
                                if (sBotao.indexOf('Ok') != -1) {
                                        vResult = 'Ok';}
                        }
                }
        }
        return vResult;
}
/***************************************************************************/

/******************************************************************************
 * Autor : Rui Sampaio (rui.sampaio@sefaz.gov.br)
 * Ultima modifi??o :	(desconhecido)
 *
 * Fun??o utilizada para destacar um item numa tabela html com a passagem do
 * mouse.
 *
 * Parametro :   tr: identificador unico da linha da tabela.
 *              cls: nome da classe do estilo que deve ser utilizado para
 *                   descar a linha.
 * retorno :
 *
 * Exemplo : <tr id="1" onMouseOver="mhHover('1', 'LinhaSelected')" onMouseOut="mhHover('1', 'CampoForm')">
 ******************************************************************************/
function mhHover(tr, cls)
{
	var t, d;
	if (document.getElementById)
		t = document.getElementById(tr);
	else
		t = document.all(tr);
	if (t == null) return;

	d = t.getElementsByTagName('TD');

	for (var i = 0; i < d.length; i++){
		d[i].className = cls;
	}
}

function validaNumero(obj){
   var valor = obj.value;
   var reInteger = /^\d+$/;
   var resultado = reInteger.test(valor);

   if (!resultado && obj.value !="")
    {
      alert("O campo s? aceita n?meros.");
      obj.value = valor.replace(/[a-zA-Z]/g, "");
      return false;
    }
     return true;
}


/***************************************************************************/

/******************************************************************************
 * Autor : Rui Sampaio (rui.sampaio@sefaz.gov.br)
 * Ultima modifi??o :	(desconhecido)
 *
 * Fun??o utilizada para esconder os campos da tela que encontram-se delimitados
 * por uma tag "span".
 *
 * Parametro :
 * retorno :
 *
 * Exemplo : <span id=SP_Filtro style="display"><input type="text" name="txtDescricao" class="CampoNaoObrigatorio" size="70" maxlength="70"  >span>
 ******************************************************************************/
function ShowHideFiltro(){
	if (SP_Filtro.style.display == 'none'){
		SP_Filtro.style.display = '';}
	else {
		SP_Filtro.style.display = 'none';}
}
/***************************************************************************/

/******************************************************************************
 * Autor : George Muniz (george.cabral@sefaz.gov.br)
 * Ultima modifi??o :	15/10/2005
 *
 * Fun??o utilizada para alterar a imagem do objeto ao passar o mouse.
 *
 * Parametro :
 * retorno :
 *
 * Exemplo : <img src="../../nucleo/imagens/voltar.gif" alt="Voltar" onClick="JavaScript:history.go(-1)"  OnMouseOver="mudarBotao('voltar')" OnMouseOut="mudarBotao('voltar','1')" id="voltar">
 ******************************************************************************/
function mudarBotao(img, tipo){
  document.images[img].style.cursor = 'hand';

  if(tipo==1) document.images[img].src='../../nucleo/imagens/'+img+'.gif';
  else document.images[img].src='../../nucleo/imagens/'+img+'_on.gif';

}
/***************************************************************************/

/******************************************************************************
 * Autor : George Muniz (george.cabral@sefaz.gov.br)
 * Ultima modifi??o :	15/10/2005
 *
 * Fun??o utilizada para limpar os campos do formulario.
 *
 * foi retirado os campo read only 
 * (frm.elements[i].className != 'campoReadOnly')
 *
 * Parametro :  objeto formulario que deseja ter os campo limpos.
 * retorno :
 *
 * Exemplo : onClick="JavaScript:Limpar(document.frmIncluirDocumento)"
 ******************************************************************************/
function Limpar(frm){
	for (var i = 0; i < frm.elements.length; i++){
		if (frm.elements[i].type == "select-one"){
			frm.elements[i].options[0].selected = true;
		}else if ((frm.elements[i].type != 'hidden') &&
			      (frm.elements[i].type != 'button') &&
			      (frm.elements[i].type != 'radio')  ){
				     frm.elements[i].value = '';
		}
	}
}
/***************************************************************************/


/******************************************************************************
 * Autor : Elayne Teixeira (elayne.teixeira@sefaz.gov.br)
 * Ultima modificao :	05/04/2006
 *
 * Funcao utilizada para verificar se o caracter digitado ? n?mero 
 *
 * Parametro :  caracter
 * retorno :
 *
 * Exemplo : <input type="text" name="codigo" class="CampoObrigatorio" size="15" maxlength="13" value="<%= codigo %>" onkeypress = "EhNumero(event)" > 			  
 
 ******************************************************************************/
 
function EhNumero(evento){

	var codigo;
	codigo = evento.keyCode; 
	
	//O C?digo 46 ? correspondente ao ponto(.) usado para casas decimais.
	//O C?digo 58 ? correspondente ao dois pontos(:) para campos Hora.
	// 13 - <ENTER>
	if (codigo == 13) {
		return true;
	}
	
	if(codigo < 48 || codigo > 57){
		alert("Esse campo s? aceita n?meros !");
		evento.keyCode = 0;
		return false;
	}
}
/***************************************************************************/

/******************************************************************************
 * Autor : Maximiano Gomes (maximiano.gomes@sefaz.gov.br)
 * Ultima modificao :	18/12/2006
 *
 * Funcao utilizada para verificar se o caracter digitado ? n?mero ou letras 
 *
 * Parametro :  caracter
 * retorno :
 *
 * Exemplo : <input type="text" name="codigo" class="CampoObrigatorio" size="15" maxlength="13" value="<%= codigo %>" onkeypress = "EhNumeroELetras(event)" > 			  
 *   s?mbolos bloqueados \|<>,:;?/}]{[+=_-()*&%$#@!"'/
 ******************************************************************************/
 
function EhNumeroELetras(evento){

	var codigo;
	codigo = evento.keyCode; 
	
	// 13 - <ENTER>

	if (codigo == 13) {
		return true;
	}
	//alert(codigo);

	//Key codes n?o permitidos
	//(33,34,35,36,37,38,39,40,41,42,43,44,45  ,47 , 58,59,60,61,62,63,64, 91,92,93, 95, 123,124,125)
	if((codigo>32 && codigo<46)|| codigo==47 || (codigo>57 && codigo<65) || (codigo>90 && codigo<94) || codigo==95 || (codigo>122 && codigo<126)  ){
		alert("Esse campo s? aceita n?meros , letras e acentos !");
		evento.keyCode = 0;
		return false;
	}
	
	
}
/***************************************************************************/



/******************************************************************************
 * Autor : Elayne Teixeira (elayne.teixeira@sefaz.gov.br)
 * Ultima modificao :	10/05/2006
 *
 * Funcao utilizada para verificar se o caracter digitado ? n?mero ou /
 *
 * Parametro :  caracter
 * retorno :
 *
 * Exemplo : <input name="data" class="campoobrigatorio" maxlength="10" size="10" value="" onKeyPress="EhNumeroExcetoBarra(event)" onKeyDown="FormataData(this)" onBlur="validaData(this)">
 ******************************************************************************/
 
function EhNumeroExcetoBarra(evento){

	var codigo;
	codigo = evento.keyCode; 
	
	//O C?digo 46 ? correspondente ao ponto(.) usado para casas decimais.
	//O C?digo 58 ? correspondente ao dois pontos(:) para campos Hora.
	// 13 - <ENTER>
    // 47 - /	
	if (codigo == 13 || codigo == 47) {
		return true;
	}
	
	if(codigo < 48 || codigo > 57){
		alert("Esse campo s? aceita n?meros !");
		evento.keyCode = 0;
		return false;
	}
}
/***************************************************************************/


/******************************************************************************
 * Autor : Elayne Teixeira (elayne.teixeira@sefaz.gov.br)
 * Ultima modificao :	10/05/2006
 *
 *
 * Fun??o que ? utilizada na formata??o de datas, est? fun??o acrescenta na data
 * o caracter para separar o dia, mes e ano com '/'.
 * 
 * Parametro : obj, objeto a ser formatado.			   
 *
 * Exemplo : OnKeyDown="FormataData(this)"
  ******************************************************************************/
function FormataData(objeto) {
	var tecla, tamanho;
	tecla = event.keyCode;

	if (tecla != 8) {
		tamanho = objeto.value.length;
		if (tamanho == 2 || tamanho == 5) {

			
			objeto.value = objeto.value + "/";
		}
	}

}
/***************************************************************************/

/******************************************************************************
 * Autor : Elayne teixeira(elayne.teixeira@sefaz.gov.br) 
 * ?ltima modifica??o :	11/09/2006			Respons?vel : Autor
 *
 * Fun??o que ? utilizada na verifica??o do ano, se ? bissexto ou n?o.
 * 
 * Par?metro : ano, Um valor que ? utilizada para verifica??o do ano
 * retorno : retorna TRUE caso o ano seja bissexto, FALSO caso contr?rio.
 ******************************************************************************/
function anobissexto (ano) { 
	if (((ano % 4)==0) && ((ano % 100)!=0) || ((ano % 400)==0)) { 
		return (true);
	} else return (false) 
}


/******************************************************************************
 * Autor : Maximiano Gomes (maximiano.gomes@sefaz.gov.br)
 * ?ltima modific?o :	11/09/2006
 *
 * Fun??o que ? utilizada na valida??o da data. A data passada deve estar num
 * formato com '/' para separar o dia , m?s e o ano.
 * 
 * Parametro : objeto, campo do objeto que deve ser validado.
 * retorno : retorna TRUE caso a String passada uma Data v?lida, FALSO caso
 *           contr?rio e seta o focus no objeto e exibe uma mensagem de alerta.
 *
 * Exemplo : OnBlur="validaData(this)" ou OnSubmit="validaData(form.data)"
 ******************************************************************************/

function validaData(objeto) {
	var valor = objeto.value;
	var mValores = "312831303130313130313031"
	var retorno = true;
	var lastDate = 0

	if (valor == "") return true;
	if (valor.length < 10) retorno = false;
	if (valor.length > 10 && valor.substr(6, 4) < 1800) {
		alert("O sistema n?o trabalha com ano inferior a 1800.")
		objeto.focus();
		objeto.select();
		return false;
	}

    dia  = parseInt(valor.substring(0,2),10)		// pega o dia
	mes  = parseInt(valor.substring(3,5),10)  		// pega o m?s
	ano  = parseInt(valor.substring(6,10),10)		// pega o ano
	
	if (mes == 2){
		if (anobissexto(ano)) {
			lastDate = 29
		} else {
			lastDate = 28
		}
	} else {
		lastDate = mValores.substring((mes-1)*2, (mes-1)*2+2)
	}
	
	if (valor.length < 8){
		retorno = false
	} else if ((valor.substring(2,3) != "/" ) || (valor.substring(5,6) != "/") ) {
		retorno = false
	} else if ( (isNaN(dia)) || (isNaN(mes)) || ( isNaN(ano)) ) {
		retorno = false
	} else if ( (mes > 12) || (mes <= 0) ){
		retorno = false
	} else if ( (dia > lastDate) || (dia <=0) ){
		retorno = false
	} else if (valor.substring(6,10) < 4){
		retorno = false
	} else if (ano <= 1900){
		retorno = false
	}		


	if (!retorno){
		objeto.focus();
		objeto.select();
		alert("Data Inv?lida!")
	}

	return retorno;
}
/***************************************************************************/

/******************************************************************************
 * Autor : Elayne Teixeira (elayne.teixeira@sefaz.gov.br)
 * ?ltima modific?o :	12/05/2006
 *
 * Fun??o que ? utilizada para verificar se o caracter digitado ? n?mero ou :.
 * Sen?o for n?mero deve ser mostrada uma mensagem de alerta.
 *
 * Observa??o : Usado no evento , onkeypress = "EhHora(event)"
 *  <input type="text" name="horaInicio" class="campo"  size="5" maxlength="5" value="" onKeyPress="Ehhora(event)" "  >             
 ******************************************************************************/
function Ehhora(evento){
	var codigo;
	codigo = evento.keyCode; 
	
	//O C?digo 58 ? correspondente ao dois pontos(:) para campos Hora.
	// 13 - <ENTER>
	// 58 - :
	if (codigo == 58 || codigo == 13 || codigo == 8) {
		return true;
	}
	
	if(codigo < 48 || codigo > 57){
		alert("Esse campo s? aceita n?meros e :!");
		evento.keyCode = 0;
		return false;
	}
}
/***************************************************************************/


/******************************************************************************
 * Autor : Elayne Teixeira (elayne.teixeira@sefaz.gov.br)
 * ?ltima modific?o :	12/05/2006
 *
 * Fun??o que ? utilizada para verificar se a hora est? em um formato v?lido.
 * Parametros : strTime, a hora a ser validada.
 *              strFormat, o formato da hora a ser verificada. Pode ser:
 *				":hm", ":hms", ":Hm" ou ":Hms",
 * Retorno	  : Retorna um booleano, com true ou false.
 *
 * Observa??o : Usado no evento , onBlur.
 ******************************************************************************/
function validaHora(objeto, strFormat) {
	var strTime = objeto.value;
	var	i, intMaxHour, intHour, intMinute, intSecond = 0;
	var	intSep1 = strTime.indexOf(strFormat.charAt(0));
	var	intSep2 = strTime.lastIndexOf(strFormat.charAt(0));
	var	strParts;

	// Se o usu?rio n?o digitou , n?o devo verificar nada.
	if (strTime == "") return true;
	

	if(intSep1 == intSep2){ 
	   intSep2 = strTime.length 
	}

	strParts = new Array(strTime.substring(0, intSep1), strTime.substring(intSep1 + 1, intSep2), strTime.substr(intSep2 + 1, 4));
	
	for(i = 0; i < strFormat.length - 1; i++) {
		switch(strFormat.charAt(i + 1))	{
			case "H":
				intHour = parseInt(strParts[i], 10);
				intMaxHour = 23;
				break;
			case "h":
				intHour = parseInt(strParts[i], 10);
				intMaxHour = 12;
				break;
			case "m": intMinute = parseInt(strParts[i], 10); break;
			case "s": intSecond = parseInt(strParts[i], 10);
		}
	}
	
	if (IsBetween(intHour, 0, intMaxHour) && IsBetween(intMinute, 0, 59) && IsBetween(intSecond, 0, 59)){
	   return true;
	}else{
		objeto.focus();
		objeto.select();
		alert("Hora Inv?lida!")
	}
}

/***************************************************************************/

/******************************************************************************
 * Autor : Elayne Teixeira (elayne.teixeira@sefaz.gov.br)
 * Ultima modificao :	10/05/2006
 *
 *
 * Verifica se um valor est? dentro da faixa representada por outros dois.
 * Auxilia a fun??o validaHora.
 * 
 * Parametro : valor, valr minimo, valor maximo.			   
 *
 * Ex: IsBetween(18, 0, 23)
  ******************************************************************************/

function IsBetween(intValue, intMin, intMax) {
	return(intValue >= intMin && intValue <= intMax);
}
/***************************************************************************/



/******************************************************************************
 * Autor : Elayne Teixeira (elayne.teixeira@sefaz.gov.br)
 * Ultima modificao :	10/05/2006
 *
 *
 * Fun??oo que ? utilizada na formata??o de hora, esta fun??o acrescenta na hora
 * o caracter para separar a hora do minuto com ':'.
 * 
 * Parametro : obj, objeto a ser formatado.			   
 *
 * Exemplo : <input type="text" name="horaInicio" class="campo"  size="5" maxlength="5" value="" onKeyPress="Ehhora(event)" onKeyDown="FormataHora(this)" >             
  ******************************************************************************/
function FormataHora(objeto) {
	var tamanho,tecla;
    tecla = event.keyCode;

    if (tecla != 8){
        tamanho = objeto.value.length;
    
    	if (tamanho == 2) {
		    objeto.value = objeto.value + ":";
		}    
	}
}
/***************************************************************************/

/******************************************************************************
 * Autor : Elayne Teixeira (elayne.teixeira@sefaz.gov.br)
 * Ultima modificao :	15/05/2006
 *
 * Fun??o que ? utilizada para verificar se a hora est? no intervalo correto.
 * Parametros : objetoIni, campo equivalente a Hora inicial.
 *              objetoFim, campo equivalente a hora Final.
 *
 * Retorno	  : Retorna um booleano, com true (caso o intervalo esteja correto)
 *              ou false (caso contr?rio).
 *
 * Observa??o : Usado no evento submit do form.
 ******************************************************************************/
function ValidaIntervaloHora(objetoIni, objetoFim) {
	var retorno = true;
	var horaI, horaF, minI, minF, mensagemD;
	
	if (objetoIni != "" && objetoFim != "") {
	
		mensagemD = "Intervalo das Horas esta incorreto!";
		horaI = objetoIni.substring(0, 2)
		minI  = objetoIni.substring(3, 5)

		horaF = objetoFim.substring(0, 2)
		minF  = objetoFim.substring(3, 5)
		
		if (horaI > horaF) {
			alert(mensagemD);
			retorno = false;
		} else if (horaI == horaF) {
			if (minI > minF) {
				alert(mensagemD);
				retorno = false;
			} else if(minI == minF) {
				alert(mensagemD);
				retorno = false;
			}
		}
	}
    return retorno;
}
/***************************************************************************/

/******************************************************************************
 * Autor : Elayne Teixeira (elayne.teixeira@sefaz.gov.br)
 * Ultima modificao :	17/05/2006
 *
 * Fun??o que verifica se algum campo de determinado tipo est? em branco ou n?o
 * e retorna uma mensagem avisando que o campo precisa ser preenchido e seta o
 * focus para o campo que precisa ser preenchido. Para fazer um campo de 
 * determinado tipo n?o ser obrigat?rio insira a TAG , class="campoNaoObrigatorio".
 * 
 * Parametro : nomeForm(Objeto), o formul?rio em quest?o.
 * Retorno : Um boolenao true, caso todos os campo obrigat?rios estejam 
 *           preenchidos. Sen?o ele retorna false.
 *
 * Exemplo : OnSubmit = "if(!obrigatorios(document.nomeForm)){ return false; }"
 ******************************************************************************/
function obrigatorios(nomeForm) {
	var i = 0;

	//A classe campoNaoObrigatorio representa que o campo n?o ? obrigat?rio.
	while(i < nomeForm.length) {
	    if (jsTrim(nomeForm[i].value) == ""  && nomeForm[i].className != "CampoNaoObrigatorio" && nomeForm[i].className != "CampoReadOnly"){
		    alert("Campo obrigat?rio est? em branco!");
			nomeForm[i].focus();
			return false;
		}
		i = i + 1;
	}
	return true;
}
/***************************************************************************/

/******************************************************************************
 * Autor : Filipe Vieira
 * Ultima modifi??o :	05/06/2001			
 * Usada para retirar os espa?oes em branco
 * Parametro :variavel no qual deseja dar um TRIM
 ******************************************************************************/
function jsTrim(pStr){
	var i;
	var strAux;
	var PosIni,PosFim;

	//PROCURA A PRIMEIRA POSI??O V?LIDA DIFERENTE DE ESPA?O EM BRANCO
	i=0;
	while ((i < pStr.length) && (pStr.charAt(i)==" ")){
		i++;
	}
	PosIni = i;

	//PROCURA A ULTIMA POSI??O V?LIDA DIFERENTE DE ESPA?O EM BRANCO
	i=pStr.length-1;
	while ((i >= 0) && (pStr.charAt(i)==" ")){
		i--;
	}
	PosFim = i + 1;
	
	// TESTA SE OS VALORES SE CRUZARAM
	if (PosIni < PosFim){
		strAux = pStr.substring(PosIni,PosFim);
	}
	else{
		strAux = "";
	}
		
	return strAux;
}


/************************************************************************************************
 * Autor : George Muniz
 * Ultima modifi??o : 29/05/2006
 * fun??o que deixa o item do combo selecionado de acordo com o valor que v?m do banco de dados
 * Parametro : campo combobox.
 * Parametro : Valor que deseja selecionar.
************************************************************************************************/
function selecionaItemCombo(objCombo, itemValor){

 for(i=0;i<objCombo.length;i++){
	if(itemValor == objCombo.options[i].value){
 		objCombo.options[i].selected = true;
 	}
 }

}

/******************************************************************************
 * Autor : Filipe Vieira (filipe.correia@sefaz.gov.br)
 * ?ltima modifica??o :	07/02/2001			Respons?vel : Autor
 *
 * Fun??o que ? utilizada para verificar se a data est? no intervalo correto.
 * Par?metros : objetoIni, campo equivalente a data inicial.
 *              objetoFim, campo equivalente a data Final.
 *
 * Retorno	  : Retorna um booleano, com true (caso o intervalo esteja correto)
 *              ou false (caso contr?rio).
 *
 * Observa??o : Usado no evento submit do form.
 ******************************************************************************/
function intervaloCorreto(objetoIni, objetoFim) {
	var retorno = true;
	var diaI, diaF, mesI, mesF, anoI, anoF, mensagemD;
	
	if (objetoIni.value != "" && objetoFim.value != "") {
		mensagemD = "Intervalo das Datas incorreto!";
		diaI = objetoIni.value.substring(0, 2)
		mesI = objetoIni.value.substring(3, 5)
		anoI = objetoIni.value.substring(6, 10)
	
		diaF = objetoFim.value.substring(0, 2)
		mesF = objetoFim.value.substring(3, 5)
		anoF = objetoFim.value.substring(6, 10)
	
		if (anoI > anoF) {
			alert(mensagemD);
			retorno = false;
		} else if (anoI == anoF) {
			if (mesI > mesF) {
				alert(mensagemD);
				retorno = false;
			} else if(mesI == mesF) {
				if (diaI > diaF) {
					alert(mensagemD);
					retorno = false;
				}
			  }
		}
	}
	
	if(!retorno){
		objetoIni.focus();
	}
    return retorno;
}
/******************************************************************************
 * Autor : Maximiano Gomes (maximiano.gomes@sefaz.gov.br)
 * ?ltima modifica??o :	06/10/2006			Respons?vel : Autor
 *
 * Fun??o que ? utilizada para verificar se as datas s?o iguais.
 * Par?metros : objetoIni, campo equivalente a data inicial.
 *              objetoFim, campo equivalente a data de hoje.
 *
 * Retorno	  : Retorna um booleano, com true (caso sejam iguais)
 *              ou false (caso contr?rio).
 *
 * Observa??o : Usado no evento submit do form.
 ******************************************************************************/
function datasIguais(objetoIni, objetoFim) {
	var retorno = true;
	var diaI, diaF, mesI, mesF, anoI, anoF, mensagemD;
	
	if (objetoIni.value != "" && objetoFim.value != "") {
		diaI = objetoIni.value.substring(0, 2)
		mesI = objetoIni.value.substring(3, 5)
		anoI = objetoIni.value.substring(6, 10)
	
		diaF = objetoFim.value.substring(0, 2)
		mesF = objetoFim.value.substring(3, 5)
		anoF = objetoFim.value.substring(6, 10)
		if ((anoI == anoF)&&(mesI == mesF)&&(diaI == diaF)) {
		retorno = true;
		}else{
		retorno = false;
		}

	}
	
	if(!retorno){
		//objetoIni.focus();
	}
    return retorno;
}


/*******************************************************************************
 * Autor: desconhecido
 * Data de Cria??o: ??/??/????
 *
 * Fun??o : Abrir um janela popup
 *
 * Parametro 1: url da pagina
 * Parametro 2: Nome da janela
 * Parametro 3: pos1
 * Parametro 4 pos2
 * Parametro 5: largura da pagina
 * Parametro 6: titulo
 * Exemplo : abreJanela('/CAF/scripts/acesso/InicializarDepartamentoAction.do','CAF', 100, 150, 700,400);	  	 
 ******************************************************************************/
function abreJanela(url,janela,pos1,pos2,larg,alt){
 window.open(url,janela,"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,top="+pos1+",left="+pos2+",screenY="+pos1+",screenX="+pos2+",width="+larg+",height="+alt);
}


/******************************************************************************
 * Autor : George Muniz
 * Ultima modificao :	21/07/2001			Respons?vel : Autor
 *
 * Funcao que : Remove o item da lista (select)
 * Parametros : objeto
 *
 * Retorno	  : nenhum
 *
 * Observacao : onClick ="Javascript:removeItemLista(document.frmIncluirAutorizacaoAcesso.localizacao2);"
 ******************************************************************************/
function removeItemLista(objSelect){
   for (i=0; i<objSelect.options.length; i++) {
      if (objSelect.options[i].selected){
         objSelect.options[i] = null;
      }
   }
}

/******************************************************************************
 * Autor : George Muniz
 * Ultima modificao :	21/07/2001			Respons?vel : Autor
 *
 * Funcao que : Adiciona um item na lista (select)
 * Parametros : objeto, valor, e descri??o para o usuario
 * Retorno	  : nenhum
 *
 * Observacao :    adicionarItemLista(document.frmIncluirAutorizacaoAcesso.localizacao2, valor, nome);
 ******************************************************************************/
function adicionarItemLista (objSelect, valor, descricao) {
    objSelect.options[objSelect.options.length]=new Option (descricao,valor);
}


/******************************************************************************
 * Autor : Elayne Teixeira (elayne.teixeira@sefaz.gov.br)
 * Ultima modificao :	01/08/2006
 *
 *
 * Fun??o que utilizada no preenchimento de acordo com o tamanho informado
 * 
 * Parametro : obj, objeto a ser formatado.			   
 *
 * Exemplo : <input type="text" name="matricula" class="campo"  size="10" maxlength="10" value="" onblur="preencherComCaracter(this,10,0)" >             
  ******************************************************************************/
function preencherComCaracter(objeto,tamanho,caracter) {
  
   if (objeto.value !="" && tamanho > 0)
   {
	  while (objeto.value.length < tamanho ){
         objeto.value = caracter + objeto.value; 
      }
   }

}

/******************************************************************************
 * Autor : Filipe Vieira 
 * ?ltima modifica??o :	10/08/2000			Respons?vel : Filipe Vieira (filipe.correia@sefaz.gov.br)
 *
 * Fun??o que ? utilizada na valida??o de CPF. O valor passado n?o possui 
 * caracteres especiais, v?rgula, separadores ou ponto. S?o apenas n?meros.
 * 
 * Par?metro : cpf, String contendo o CPF a ser testado.
 * retorno : retorna TRUE caso a String passada ? um CPF v?lido e exibe mensagem,
 *              FALSO caso contr?rio.
 *           
 ******************************************************************************/
function validaCPF(cpf){
    var fach = 1;
    var pdig = cpf.substring(0,1);
	var cdig;

	if (cpf == "") {
		return true;
	}
	
	if (cpf.length < 11) {
		return false;
	}

    for(i = 1; i < cpf.length ;i++){
        cdig = cpf.substring(i,i+1);
        if(pdig == cdig ){ fach=fach+1;
        }
    }
    
	if(fach == cpf.length){ return false; }

	x = 0;
	soma = 0;
	dig1 = 0;
	dig2 = 0;
	texto = "";
	cpf1="";
	len = cpf.length; x = len -1;
	// var cpf = "12345678909";
	for (var i=0; i <= len - 3; i++) {
		y = cpf.substring(i,i+1);
		soma = soma + ( y * x);
		x = x - 1;
		texto = texto + y;
	}
	dig1 = 11 - (soma % 11);
	if (dig1 == 10) dig1=0 ;
	if (dig1 == 11) dig1=0 ;
	cpf1 = cpf.substring(0,len - 2) + dig1 ;
	x = 11; soma=0;
	for (var i=0; i <= len - 2; i++) {
		soma = soma + (cpf1.substring(i,i+1) * x);
		x = x - 1;
	}
	dig2= 11 - (soma % 11);
	if (dig2 == 10) dig2=0;
	if (dig2 == 11) dig2=0;
	if ((dig1 + "" + dig2) == cpf.substring(len,len-2))
	{
		return true;
	}else{
		return false;
	}

}